<?php
class GuildInfoVo extends SzAbstractMySqlVo
{

    private $userId;
    private $id;
    private $leaderId;
    private $name;
    private $lv;
    private $slogan;
    private $notice;
    private $money;
    private $created;
    private $num;
    private $addShareNum;
    private $updateTime;

    /**
     * Initialize GuildInfoVo.
     *
     * @param $userId
     * @param $id
     * @param $leaderId
     * @param $name
     * @param $lv
     * @param $slogan
     * @param $notice
     * @param $money
     * @param $created
     * @param $num
     * @param $addShareNum
     * @param $updateTime
     * @param boolean $isInsert default false, means for now this vo is initialized not for insert process
     * @return GuildInfoVo
     */
    public function __construct($userId, $id, $leaderId, $name, $lv, $slogan, $notice, $money, $created, $num, $addShareNum = 0, $updateTime = 0, $isInsert = false) {
        $this->userId = $userId;
        $this->id = $id;
        $this->leaderId = $leaderId;
        $this->name = $name;
        $this->lv = $lv;
        $this->slogan = $slogan;
        $this->notice = $notice;
        $this->money = $money;
        $this->created = $created;
        $this->num = $num;
        $this->addShareNum = $addShareNum;
        $this->updateTime = $updateTime;

        $this->isInsert = $isInsert;
        $this->voClassName = 'GuildInfoVo';
        $this->ormName = 'GuildInfo';
    }

    /**
     * @see SzAbstractVo::toArray
     */
    public function toArray($needEncode = false)
    {
        return array(
            'userId' => $this->getUserId(),
            'id' => $this->getId(),
            'leaderId' => $this->getLeaderId(),
            'name' => $this->getName(),
            'lv' => $this->getLv(),
            'slogan' => $this->getSlogan(),
            'notice' => $this->getNotice(),
            'money' => $this->getMoney(),
            'created' => $this->getCreated(),
            'num' => $this->getNum(),
            'addShareNum' => $this->getAddShareNum(),
            'updateTime' => $this->getUpdateTime(),
        );
    }

    /**
     * @see SzAbstractVo::toEntireArray
     */
    public function toEntireArray($needEncode = false)
    {
        return array(
            'userId' => $this->getUserId(),
            'id' => $this->getId(),
            'leaderId' => $this->getLeaderId(),
            'name' => $this->getName(),
            'lv' => $this->getLv(),
            'slogan' => $this->getSlogan(),
            'notice' => $this->getNotice(),
            'money' => $this->getMoney(),
            'created' => $this->getCreated(),
            'num' => $this->getNum(),
            'addShareNum' => $this->getAddShareNum(),
            'updateTime' => $this->getUpdateTime(),
        );
    }

    /**
     * @see SzAbstractVo::toPureArray
     */
    public function toPureArray()
    {
        return array(
            $this->getUserId(),
            $this->getId(),
            $this->getLeaderId(),
            $this->getName(),
            $this->getLv(),
            $this->getSlogan(),
            $this->getNotice(),
            $this->getMoney(),
            $this->getCreated(),
            $this->getNum(),
            $this->getAddShareNum(),
            $this->getUpdateTime(),
        );
    }

    public function getUserId()
    {
        return $this->userId;
    }

    public function setUserId($val)
    {
        $this->saveColumnStatus(0, $this->userId);
        $this->userId = $val;
    }

    public function getId()
    {
        return $this->id;
    }

    public function setId($val)
    {
        $this->saveColumnStatus(1, $this->id);
        $this->id = $val;
    }

    public function getLeaderId()
    {
        return $this->leaderId;
    }

    public function setLeaderId($val)
    {
        $this->saveColumnStatus(2, $this->leaderId);
        $this->leaderId = $val;
    }

    public function getName()
    {
        return $this->name;
    }

    public function setName($val)
    {
        $this->saveColumnStatus(3, $this->name);
        $this->name = $val;
    }

    public function getLv()
    {
        return $this->lv;
    }

    public function setLv($val)
    {
        $this->saveColumnStatus(4, $this->lv);
        $this->lv = $val;
    }

    public function getSlogan()
    {
        return $this->slogan;
    }

    public function setSlogan($val)
    {
        $this->saveColumnStatus(5, $this->slogan);
        $this->slogan = $val;
    }

    public function getNotice()
    {
        return $this->notice;
    }

    public function setNotice($val)
    {
        $this->saveColumnStatus(6, $this->notice);
        $this->notice = $val;
    }

    public function getMoney()
    {
        return $this->money;
    }

    public function setMoney($val)
    {
        $this->saveColumnStatus(7, $this->money);
        $this->money = $val;
    }

    public function getCreated()
    {
        return $this->created;
    }

    public function setCreated($val)
    {
        $this->saveColumnStatus(8, $this->created);
        $this->created = $val;
    }

    public function getNum()
    {
        return $this->num;
    }

    public function setNum($val)
    {
        $this->saveColumnStatus(9, $this->num);
        $this->num = $val;
    }

    public function updateNum($val)
    {
        $this->saveColumnStatus(9, $this->num);
        $this->num += $val;
    }

    public function updateLv($val)
    {
        $this->saveColumnStatus(4, $this->lv);
        $this->lv += $val;
    }

    public function updateMoney($val)
    {
        $this->saveColumnStatus(7, $this->money);
        $this->money += $val;
    }

    public function getAddShareNum()
    {
        return $this->addShareNum;
    }

    public function setAddShareNum($val)
    {
        $this->saveColumnStatus(10, $this->addShareNum);
        $this->addShareNum = $val;
    }

    public function getUpdateTime()
    {
        return $this->updateTime;
    }

    public function setUpdateTime($val)
    {
        $this->saveColumnStatus(11, $this->updateTime);
        $this->updateTime = $val;
    }

    public function updateAddShareNum($val)
    {
        $this->saveColumnStatus(10, $this->addShareNum);
        $this->addShareNum += $val;
    }
}